package com.wanwu.channel.common.enums;

import com.wanwu.channel.common.exception.SystemException;

public enum ExceptionEnum {



    S00000("成功"),
    SUCCESS("成功"),
    FAIL("失败"),
    UNKNOWN("未知"),
    PROCESSING("处理中"),
    REPEAT("交易重复"),
    TIME_OUT("请求超时"),

    V00000("校验参数异常:[%s]"),

    E10000("ERROR-系统繁忙，请稍后重试"),
    E10001("ERROR-渠道商户配置信息不存在"),
    E10002("ERROR-第三方接口httppost失败"),
    E10003("ERROR-获取SSLContext异常"),
    E10004("ERROR-支付宝接口调用返回失败"),
    E10005("ERROR-微信返回报文验签失败"),
    E10006("ERROR-调用微信订单查询失败"),
    E10007("ERROR-订单状态非支付中和未支付，不允许关单"),
    E10008("ERROR-调用微信关单失败"),
    E10009("ERROR-微信回调报文验签失败"),
    E10010("ERROR-微信回调报文中return_code不是SUCCESS"),
    E10011("ERROR-支付订单不存在"),
    E10012("ERROR-订单已为支付终态，通知支付结果与数据库状态不一致"),
    E10013("ERROR-通知结果中订单金额与数据库不一致"),
    E10014("ERROR-请求支付系统支付结果回调接口返回非200code"),
    E10015("ERROR-请求支付系统支付结果回调接口返回空报文"),
    E10016("ERROR-支付系统处理支付结果回调失败"),
    E10017("ERROR-微信返回xml转换失败"),
    E10018("ERROR-支付宝不支持退款查询，请以回调为准"),
    E10019("ERROR-支付宝不支持关单，请以回调为准"),
    E10020("ERROR-可退金额不足这次退款金额"),
    E10021("ERROR-https关闭异常"),
    E10022("ERROR-支付宝接口调用失败"),
    E10023("ERROR-请求通联接口异常"),
    E10030("ERROR-生成序列号异常"),
    E10031("ERROR-微信退款回调报文缺少退款信息"),
    E10032("ERROR-微信退款回调退款单不存在"),
    E10033("ERROR-微信退款回调状态异常"),
    E10034("ERROR-微信退款回调已处理"),
    E10035("ERROR-退款通知状态与数据库状态不一致"),
    E10036("ERROR-xml转换bean失败"),
    E10037("ERROR-支付单查询查到不允许出现的订单状态"),

    E10040("ERROR-清分查询异常"),
    E10041("ERROR-清分订单不存在"),
    E10042("ERROR-同一清分明细单号有两条非失败的清分明细单"),
    E10044("ERROR-HTTP请求接口异常"),
    E10045("ERROR-HTTP请求返回报文为空"),
    E10046("ERROR-订单已存在"),
    E10047("ERROR-订单不存在"),
    E10048("ERROR-请求编码错误"),
    E10059("ERROR-回调清分系统异常"),


    E10050("ERROR-调用支付接口异常"),

    E10051("ERROR-从apollo获取商户配置失败"),
    E10052("ERROR-推送商户增配置到apollo失败"),
    E10053("ERROR-更新商户配置到apollo失败"),
    E10054("ERROR-发布apollo配置失败"),

    R20001("REFUND-退款参数不能为null"),
    R20002("REFUND-退款金额不能为null"),
    R20003("REFUND-退款查询业务线退款单号必输"),
    R20004("REFUND-该退款单号已存在，不可重复发起"),
    R20005("REFUND-退款终态两次结果不一致，请人工介入！"),
    R20006("REFUND-未查询到退款信息"),
    R20007("REFUND-退款业务单号不能为null"),
    R20008("REFUND-订单金额不能为null"),
    R20009("REFUND-外币币种不能为null"),
    R20010("REFUND-退款原因不能为null"),
    R20011("REFUND-通联支付流水不能为null"),
    R20012("REFUND-退款非终态，无法通知"),

    TL1000("TL-ERROR-通联返回报文为空"),
    TL1001("TL-ERROR-通联接口返回失败"),
    TL1002("TL-ERROR-通联返回报文验签失败"),
    TL1003("TL-ERROR-调用通联接口未知异常"),
    TL1004("TL-ERROR-通联支付回调报文验签失败"),
    TL1005("TL-ERROR-报关MD5签名失败"),
    TL1006("TL-ERROR-http请求通联返回非200"),
    TL1007("TL-ERROR-http请求通联返回空报文"),
    TL1008("TL-ERROR-通联关闭http请求异常"),
    TL1009("TL-ERROR-通联报关http请求异常"),
    TL1010("TL-ERROR-通联报关返回报文验签失败"),
    TL1011("TL-ERROR-通联报关订单不存在"),


    V10001("VALIDATE-ERROR-请求参数为空"),
    V10002("VALIDATE-ERROR-payType为空或不合法"),
    V10003("VALIDATE-ERROR-subject不能为空"),
    V10004("VALIDATE-ERROR-body不能为空"),
    V10005("VALIDATE-ERROR-payAmount不能为空或为0"),
    V10006("VALIDATE-ERROR-bizOrderNo不能为空"),
    V10007("VALIDATE-ERROR-frontUrl不能为空"),
    V10008("VALIDATE-ERROR-currency不能为空"),
    V10009("VALIDATE-ERROR-totalQuantity不能为空或为0"),
    V10010("VALIDATE-ERROR-merchantNo不能为空"),
    V10011("VALIDATE-ERROR-merchantAppId不能为空"),
    V10012("VALIDATE-ERROR-userId不能为空"),
    V10013("VALIDATE-ERROR-bizCode不能为空"),


    PM50000("TRADE-CHANNEL-保存成功0条数据"),
    PM50001("TRADE-CHANNEL-保存数据库异常"),
    PM50002("TRADE-CHANNEL-更新成功0条数据"),
    PM50003("TRADE-CHANNEL-更新数据库异常"),
    PM50004("TRADE-CHANNEL-订单不存在"),
    PM50005("TRADE-CHANNEL-查询数据库异常"),
    PM50006("TRADE-CHANNEL-保存数据库主键冲突"),
    PM50007("TRADE-CHANNEL-保存数据条数与列表不一致"),
    PM50008("TRADE-CHANNEL-报关重推信息未修改"),

    CQ00001("CUSTOM-QUERY-海关总署查询相关信息不存在"),

    V200001("微信报关查询未找到该订单"),

    //渠道第三方错误码
    E20001("ERROR-支付宝直连通讯异常：errorCode:[%s], errorMsg:[%s]"),
    E20002("ERROR-支付宝直连【%s】调用失败，errorCode:[%s], errorMsg:[%s]"),
    E20003("ERROR-支付宝交易查询失败，errorCode:[%s], errorMsg:[%s]"),
    E20004("ERROR-支付宝回调报文验签失败"),
    E20005("ERROR-支付宝回调状态未知"),
    E20006("ERROR-支付宝退款查询失败，errorCode:[%s], errorMsg:[%s]"),
    E20007("ERROR-支付宝退款查询：退款单不存在（支付单存在，退款明细缺失）"),


    E21005("ERROR-customs_declare列表为空"),


    ;

    private String msg;

    ExceptionEnum(String msg) {
        this.msg = msg;
    }

    public String getMsg() {
        return msg;
    }

    public SystemException getException() {
        return new SystemException(this);
    }

}
